Задан массив из n целых чисел. Выведите только его отрицательные элементы, изменив первоначальный
порядок на противоположный.
Вход. Первая
строка содержит число n (1 ≤ n ≤ 100). Во второй строке
записаны n
целых чисел, каждое из которых не превышает по модулю 100.
Выход. В первой строке
выведите количество отрицательных элементов массива. Во второй строке выведите
сами отрицательные элементы в обратном порядке. Если отрицательных элементов в
массиве нет, то выведите
”NO”.
Пример входа 1 |
Пример выхода 1 |
7 -2 5 4 -3 7
-1 0 |
3 -1 -3 -2 |
|
|
Пример входа 2 |
Пример выхода 2 |
5 2 1 0 1 5 |
NO |
массив
Читаем входную последовательность в массив. Подсчитываем
количество отрицательных чисел. Если оно равно 0, то выводим “NO”. Иначе
выводим количество отрицательных чисел и сами числа в обратном порядке.
Реализация алгоритма
Объявим
массив для хранения последовательности.
int m[101];
Читаем входную последовательность в массив.
scanf("%d", &n);
for (i = 0; i < n; i++)
scanf("%d", &m[i]);
В переменной cnt подсчитаем количество отрицательных чисел.
cnt = 0;
for (i = 0; i < n; i++)
if (m[i] < 0) cnt++;
Если отрицательных чисел нет, то выводим “NO”.
if (cnt == 0)
printf("NO\n");
else
{
Выводим количество отрицательных чисел.
printf("%d\n", cnt);
Выводим отрицательные числа в обратном порядке.
for (i = n - 1; i >= 0;
i--)
if (m[i] < 0) printf("%d ", m[i]);
printf("\n");
}